#include <android/native_window_jni.h>
#include <android/log.h>
#include <pthread.h>
#include <stdio.h>
#include <string.h>

#ifndef JNI_HELPER_H
#define JNI_HELPER_H

#ifdef __cplusplus
extern "C" {
#endif

#define LOG_TAG "oe_egl"
#define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)

#define RGB565_R(p) ((((p) & 0xF800) >> 11) << 3)
#define RGB565_G(p) ((((p) & 0x7E0 ) >> 5)  << 2)
#define RGB565_B(p) ( ((p) & 0x1F  )        << 3)
#define MAKE_RGB565(r,g,b) ((((r) >> 3) << 11) | (((g) >> 2) << 5) | ((b) >> 3))

#define RGBA_A(p) (((p) & 0xFF000000) >> 24)
#define RGBA_R(p) (((p) & 0x00FF0000) >> 16)
#define RGBA_G(p) (((p) & 0x0000FF00) >>  8)
#define RGBA_B(p)  ((p) & 0x000000FF)
#define MAKE_RGBA(r,g,b,a) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))


JNIEnv* Android_JNI_GetEnv(void);
void setNativeWindow( ANativeWindow* w);
ANativeWindow* JniAquireWindow();
void JniReleaseWindow();

#ifdef __cplusplus
}
#endif
#endif
